package com.ruoyi.sl.service.impl;

import java.util.Date;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sl.mapper.SlRfworkMapper;
import com.ruoyi.sl.domain.SlRfwork;
import com.ruoyi.sl.service.ISlRfworkService;

/**
 * 报工单Service业务层处理
 * 
 * @author admin
 * @date 2024-06-18
 */
@Service
public class SlRfworkServiceImpl implements ISlRfworkService 
{
    @Autowired
    private SlRfworkMapper slRfworkMapper;

    /**
     * 查询报工单
     * 
     * @param rfworkId 报工单主键
     * @return 报工单
     */
    @Override
    public SlRfwork selectSlRfworkByRfworkId(Long rfworkId)
    {
        return slRfworkMapper.selectSlRfworkByRfworkId(rfworkId);
    }

    /**
     * 查询报工单列表
     * 
     * @param slRfwork 报工单
     * @return 报工单
     */
    @Override
    public List<SlRfwork> selectSlRfworkList(SlRfwork slRfwork)
    {
        return slRfworkMapper.selectSlRfworkList(slRfwork);
    }

    /**
     * 查询所有复核通过的报工单列表
     * @param rfworkType 类型0计件1零工
     * @return 报工单集合
     */
    @Override
    public List<SlRfwork> selectAllApprovedSlRfworkList(String rfworkType){
        return slRfworkMapper.selectAllApprovedSlRfworkList(rfworkType);
    }

    //指定日期复核通过的报工单
    public List<SlRfwork> selectAllApprovedSlRfworkListByDate(String rfworkType,Date rfworkDate){
        return slRfworkMapper.selectAllApprovedSlRfworkListByDate(rfworkType,rfworkDate);
    }



    /**
     * 查询指定日期所有复核没有通过的报工单列表
     * @param rfworkType 类型0计件1零工
     * @return 报工单集合
     */
    @Override
    public List<SlRfwork> selectNotApprovedSlRfworkListDate(String rfworkType){
        return slRfworkMapper.selectNotApprovedSlRfworkListDate(rfworkType);
    }


    /**
     * 新增报工单
     * 
     * @param slRfwork 报工单
     * @return 结果
     */
    @Override
    public int insertSlRfwork(SlRfwork slRfwork)
    {
        slRfwork.setCreateTime(DateUtils.getNowDate());
        return slRfworkMapper.insertSlRfwork(slRfwork);
    }

    /**
     * 修改报工单
     * 
     * @param slRfwork 报工单
     * @return 结果
     */
    @Override
    public int updateSlRfwork(SlRfwork slRfwork)
    {
        slRfwork.setUpdateTime(DateUtils.getNowDate());
        return slRfworkMapper.updateSlRfwork(slRfwork);
    }

    /**
     * 批量删除报工单
     * 
     * @param rfworkIds 需要删除的报工单主键
     * @return 结果
     */
    @Override
    public int deleteSlRfworkByRfworkIds(Long[] rfworkIds)
    {
        return slRfworkMapper.deleteSlRfworkByRfworkIds(rfworkIds);
    }

    /**
     * 删除报工单信息
     * 
     * @param rfworkId 报工单主键
     * @return 结果
     */
    @Override
    public int deleteSlRfworkByRfworkId(Long rfworkId)
    {
        return slRfworkMapper.deleteSlRfworkByRfworkId(rfworkId);
    }
}
